package activity

class BackendFilters {

    def filters = {
        all(controller:'*', action:'*') {
            before = {
//println "controllerName:"+controllerName
//println "session.accountId:"+session.accountId
//println "!session.accountId:"+!session.accountId
//println "session.accountId.equals('1'):"+session.accountId.equals("1")
                if (!controllerName) {//預設跳到前台
                    redirect(controller:'front', action:'index')
                } else if (controllerName == "front") {//前台通行，其他擋
                    //println "BackendFilters-PASS"
                    return true
                } else if (controllerName == "calendar") {//前台通行，其他擋
                    //println "BackendFilters-PASS"
                    return true
                } else if (controllerName.equals('account') && !session.accountId.equals('1') ) {
                    //權限管理畫面，只有管理者可進
                    flash.message = '帳戶權限功能僅供管理者使用'
                    redirect(controller:'login', action:'login')
                } else if (controllerName.equals('team') && !session.accountId.equals('1') ) {
                    //權限管理畫面，只有管理者可進
                    flash.message = '帳戶權限功能僅供管理者使用'
                    redirect(controller:'login', action:'login')
                } else if (controllerName.equals('power') && !session.accountId.equals('1') ) {
                    //權限管理畫面，只有管理者可進
                    flash.message = '帳戶權限功能僅供管理者使用'
                    redirect(controller:'login', action:'login')
                } else if(!session.accountId) {
                    if (controllerName.equals("login")) {//可做登出入動作
//println "BackendFilters-LOGIN"                        
                        return true
                    } else {
//println "BackendFilters-BLOCK"
                        redirect(controller:'login', action:'login')
                    }
                } else {//有session.accountId
//println "BackendFilters-ALLOW"                    
                    return true
                }
//println "BackendFilters-ELSE"                                    
                return true
            }
            after = { Map model ->
            }
            afterView = { Exception e ->
            }
        }
    }
}